home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Pascal Super Library
/
Pascal Super Library (CW International)(1997).bin
/
MATH
/
MATH1
/
SORT-S.LIB
< prev
next >
Wrap
Text File
|
1985-04-03
|
640b
|
43 lines
{ --> 178}
procedure {shell} sort(var a: ary; n: integer);
{ Shell-Metzner sort }
{ Adapted from 'Programming in pascal',
P. Grogono, Addison-Wesley, 1980 }
var done : boolean;
jump,i,j: integer;
procedure swap(var p,q: real);
var hold : real;
begin
hold:=p;
p:=q;
q:=hold
end; { swap }
begin
jump:=n;
while jump>1 do
begin
jump:=jump div 2;
repeat
done:=true;
for j:=1 to n do
begin
i:=j+jump;
if a[j]>a[i] then
begin
swap(a[j],a[i]);
done:=false
end { if }
end { for }
until done
end { while }
end; { SORT }